package com.io.commonlib.img;

//import android.content.Context;
//import android.graphics.Bitmap;
//import android.graphics.PointF;
//import android.widget.ImageView;
//
//import androidx.annotation.NonNull;
//import androidx.core.graphics.drawable.RoundedBitmapDrawable;
//import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
//
//import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
//import com.bumptech.glide.request.target.BitmapImageViewTarget;
//import com.bumptech.glide.request.transition.DrawableCrossFadeFactory;
//import com.io.iodevface.R;
//import com.luck.picture.lib.engine.ImageEngine;
//import com.luck.picture.lib.listener.OnImageCompleteCallback;
//import com.luck.picture.lib.tools.MediaUtils;
//import com.luck.picture.lib.widget.longimage.ImageSource;
//import com.luck.picture.lib.widget.longimage.ImageViewState;
//import com.luck.picture.lib.widget.longimage.SubsamplingScaleImageView;
//
///**
// * Description:图片加载引擎
// * 2020-01-04 14:35
// *
// * @author LiuMin
// */
//public class GlideEngine implements ImageEngine {
//
//    /**
//     * 加载图片
//     *
//     * @param context
//     * @param url
//     * @param imageView
//     */
//    @Override
//    public void loadImage(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView) {
//        // * other https://www.jianshu.com/p/28f5bcee409f
//        DrawableCrossFadeFactory drawableCrossFadeFactory =
//                new DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build();
//        com.bumptech.glide.Glide.with(context)
//                .load(url)
//                .transition(DrawableTransitionOptions.withCrossFade(drawableCrossFadeFactory))
//                .into(imageView);
//    }
//
//    @Override
//    public void loadImage(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView, SubsamplingScaleImageView longImageView, OnImageCompleteCallback callback) {
//        com.bumptech.glide.Glide.with(context)
//                .asBitmap()
//                .load(url)
//                .into(new com.bumptech.glide.request.target.ImageViewTarget<Bitmap>(imageView) {
//                    @Override
//                    protected void setResource(@androidx.annotation.Nullable Bitmap resource) {
//                        if (resource != null) {
//                            boolean eqLongImage = MediaUtils.isLongImg(resource.getWidth(),
//                                    resource.getHeight());
//                            longImageView.setVisibility(eqLongImage ? android.view.View.VISIBLE : android.view.View.GONE);
//                            imageView.setVisibility(eqLongImage ? android.view.View.GONE : android.view.View.VISIBLE);
//                            if (eqLongImage) {
//                                // 加载长图
//                                longImageView.setQuickScaleEnabled(true);
//                                longImageView.setZoomEnabled(true);
//                                longImageView.setPanEnabled(true);
//                                longImageView.setDoubleTapZoomDuration(100);
//                                longImageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP);
//                                longImageView.setDoubleTapZoomDpi(SubsamplingScaleImageView.ZOOM_FOCUS_CENTER);
//                                longImageView.setImage(ImageSource.bitmap(resource),
//                                        new ImageViewState(0, new PointF(0, 0), 0));
//                            } else {
//                                // 普通图片
//                                imageView.setImageBitmap(resource);
//                            }
//                        }
//                    }
//                });
//    }
//
//    /**
//     * 加载网络图片适配长图方案
//     * # 注意：此方法只有加载网络图片才会回调
//     *
//     * @param context
//     * @param url
//     * @param imageView
//     * @param longImageView
//     */
//    @Override
//    public void loadImage(@NonNull Context context, @NonNull String url,
//                          @NonNull ImageView imageView,
//                          SubsamplingScaleImageView longImageView) {
//        com.bumptech.glide.Glide.with(context)
//                .asBitmap()
//                .load(url)
//                .into(new com.bumptech.glide.request.target.ImageViewTarget<Bitmap>(imageView) {
//                    @Override
//                    protected void setResource(@androidx.annotation.Nullable Bitmap resource) {
//                        if (resource != null) {
//                            boolean eqLongImage = MediaUtils.isLongImg(resource.getWidth(),
//                                    resource.getHeight());
//                            longImageView.setVisibility(eqLongImage ? android.view.View.VISIBLE : android.view.View.GONE);
//                            imageView.setVisibility(eqLongImage ? android.view.View.GONE : android.view.View.VISIBLE);
//                            if (eqLongImage) {
//                                // 加载长图
//                                longImageView.setQuickScaleEnabled(true);
//                                longImageView.setZoomEnabled(true);
//                                longImageView.setPanEnabled(true);
//                                longImageView.setDoubleTapZoomDuration(100);
//                                longImageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP);
//                                longImageView.setDoubleTapZoomDpi(SubsamplingScaleImageView.ZOOM_FOCUS_CENTER);
//                                longImageView.setImage(ImageSource.bitmap(resource),
//                                        new ImageViewState(0, new PointF(0, 0), 0));
//                            } else {
//                                // 普通图片
//                                imageView.setImageBitmap(resource);
//                            }
//                        }
//                    }
//                });
//    }
//
//    /**
//     * 加载相册目录
//     *
//     * @param context   上下文
//     * @param url       图片路径
//     * @param imageView 承载图片ImageView
//     */
//    @Override
//    public void loadFolderImage(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView) {
//        com.bumptech.glide.Glide.with(context)
//                .asBitmap()
//                .load(url)
//                .override(180, 180)
//                .centerCrop()
//                .sizeMultiplier(0.5f)
//                .apply(new com.bumptech.glide.request.RequestOptions().placeholder(R.drawable.picture_image_placeholder))
//                .into(new BitmapImageViewTarget(imageView) {
//                    @Override
//                    protected void setResource(Bitmap resource) {
//                        RoundedBitmapDrawable circularBitmapDrawable =
//                                RoundedBitmapDrawableFactory.
//                                        create(context.getResources(), resource);
//                        circularBitmapDrawable.setCornerRadius(8);
//                        imageView.setImageDrawable(circularBitmapDrawable);
//                    }
//                });
//    }
//
//
//    /**
//     * 加载gif
//     *
//     * @param context   上下文
//     * @param url       图片路径
//     * @param imageView 承载图片ImageView
//     */
//    @Override
//    public void loadAsGifImage(@NonNull Context context, @NonNull String url,
//                               @NonNull ImageView imageView) {
//        com.bumptech.glide.Glide.with(context)
//                .asGif()
//                .load(url)
//                .into(imageView);
//    }
//
//    /**
//     * 加载图片列表图片
//     *
//     * @param context   上下文
//     * @param url       图片路径
//     * @param imageView 承载图片ImageView
//     */
//    @Override
//    public void loadGridImage(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView) {
//        // * other https://www.jianshu.com/p/28f5bcee409f
//        DrawableCrossFadeFactory drawableCrossFadeFactory =
//                new DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build();
//        com.bumptech.glide.Glide.with(context)
//                .load(url)
//                .override(200, 200)
//                .centerCrop()
//                .apply(new com.bumptech.glide.request.RequestOptions().placeholder(R.drawable.picture_image_placeholder))
//                .transition(DrawableTransitionOptions.withCrossFade(drawableCrossFadeFactory))
//                .into(imageView);
//    }
//
//
//    private GlideEngine() {
//    }
//
//    private static GlideEngine instance;
//
//    public static GlideEngine createGlideEngine() {
//        if (null == instance) {
//            synchronized (GlideEngine.class) {
//                if (null == instance) {
//                    instance = new GlideEngine();
//                }
//            }
//        }
//        return instance;
//    }
//}
